package com.zelix;

import java.util.*;

// Referenced classes of package com.zelix:
//            m5, n5, is, lx, 
//            px, tb

public final class dp  implements m5
{

    private final String a;
    private final String b;
    private String c;
    private final int d;
    private n5 g;
    static final Hashtable e;
    public static final dp f;
    public static final dp h;
    private static String z[];
    
    static{
    	z = new String[5];
    	z[0] = "()";
    	z[1] = "Null return type in ";
    	z[2] = ",";
    	z[3] = "main([Ljava/lang/String;)V";
    	z[4] = "<clinit>()V";
    	e = new Hashtable(17);
    	f = new dp(z[4]);
	h = new dp(z[3]);
	e.put("void", "V");
	e.put("byte", "B");
	e.put("char", "C");
	e.put("double", "D");
	e.put("float", "F");
	e.put("int", "I");
	e.put("long", "J");
	e.put("short", "S");
	e.put("boolean", "Z");
    }

    public dp(m5 m5_1)
    {
        super();
label0:
        {
            boolean flag = tb.b;

            if(m5_1 instanceof dp)
            {
                dp dp1 = (dp)m5_1;
                a = dp1.a;
                b = dp1.b;
                c = dp1.c;
                if(!flag)
                    break label0;
            }
            if(m5_1 instanceof n5)
            {
                n5 n5_1 = (n5)m5_1;
                a = n5_1.c();
                b = n5_1.a();
                c = n5_1.b();
                lx.b(c, z[1] + a + b + "'");
                if(!flag)
                    break label0;
            }
            a = null;
            b = null;
            c = null;
        }
        d = (a + b + c).hashCode();
    }

    public dp(String s)
    {
        this(s.substring(0, s.indexOf("(")), s.substring(s.indexOf("(")));
    }

    public dp(String s, String s1)
    {
        a = s;
        b = a(s1);
        c = s1.substring(b.length());
        d = (s + b + c).hashCode();
    }

    public dp(String s, String s1, String s2)
    {
        a = s;
        b = s1;
        c = s2;
        d = (s + s1 + s2).hashCode();
    }

    private dp(String s, String s1, String s2, int i, n5 n5_1)
    {
        a = s;
        b = s1;
        c = s2;
        d = i;
        g = n5_1;
    }

    public Object clone()
    {
        return new dp(a, b, c, d, g);
    }

    public static String c(String s, Hashtable hashtable)
    {
        StringBuffer stringbuffer;
        int i;
        String s1;
        int k;
        boolean flag;
label0:
        {
            flag = tb.b;
            stringbuffer = new StringBuffer();
            i = 0;
            int j = s.indexOf("[");
            if(j > -1)
            {
                i = (s.length() - j) / 2;
                s1 = s.substring(0, j);
                if(!flag)
                    break label0;
            }
            s1 = s;
        }
        k = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        stringbuffer.append("[");
        k++;
_L2:
        if(k < i) goto _L1; else goto _L3
_L3:
        StringTokenizer stringtokenizer;
        int l;
        StringBuffer stringbuffer1;
        int i1;
        stringtokenizer = new StringTokenizer(s1, ".");
        l = stringtokenizer.countTokens();
        if(l == 1)
        {
            String s2 = stringtokenizer.nextToken();
            String s3 = (String)e.get(s2);
            if(s3 != null)
            {
                stringbuffer.append(s3);
                if(!flag)
                    break MISSING_BLOCK_LABEL_266;
            }
            s2 = (String)px.a(s2, hashtable);
            stringbuffer.append("L");
            stringbuffer.append(s2);
            stringbuffer.append(";");
            if(!flag)
                break MISSING_BLOCK_LABEL_266;
        }
        stringbuffer1 = new StringBuffer();
        i1 = 0;
        if(!flag) goto _L5; else goto _L4
_L4:
        if(i1 > 0)
            stringbuffer1.append("/");
        stringbuffer1.append(stringtokenizer.nextToken());
        i1++;
_L5:
        if(i1 < l) goto _L4; else goto _L6
_L6:
        String s4 = (String)px.a(stringbuffer1.toString(), hashtable);
        stringbuffer.append("L");
        stringbuffer.append(s4);
        stringbuffer.append(";");
        return stringbuffer.toString();
    }

    public boolean equals(Object obj)
    {
        if(obj == null || !(obj instanceof dp))
        {
            return false;
        } else
        {
            dp dp1 = (dp)obj;
            return d == dp1.d && a.equals(dp1.a) && b.equals(dp1.b) && c.equals(dp1.c);
        }
    }

    public String b()
    {
        return b + c;
    }

    public static String a(String s, Hashtable hashtable)
    {
        StringBuffer stringbuffer;
        StringTokenizer stringtokenizer;
        boolean flag;
        flag = tb.b;
        if(s == null || s.length() == 0)
            return z[0];
        stringbuffer = new StringBuffer();
        stringbuffer.append("(");
        stringtokenizer = new StringTokenizer(s, ",");
        if(!flag) goto _L2; else goto _L1
_L1:
        String s1 = stringtokenizer.nextToken().trim();
        stringbuffer.append(c(s1, hashtable));
_L2:
        if(!stringtokenizer.hasMoreTokens())
            return stringbuffer.append(')').toString();
        if(true) goto _L1; else goto _L3
_L3:
    }

    public n5 a()
    {
        if(g == null)
            g = new n5(a, b, c);
        return g;
    }

    public String c()
    {
        return a;
    }

    public String d()
    {
        return b;
    }

    public String a(Hashtable hashtable)
    {
        return b(b, hashtable);
    }

    public static final String a(String s)
    {
        String s1 = s.substring(0, s.lastIndexOf(")") + 1);
        return s1;
    }

    public String e()
    {
        return c;
    }

    public String c(Hashtable hashtable)
    {
        return d(c, hashtable);
    }

    public String f()
    {
        Vector vector;
        StringBuffer stringbuffer;
        int i;
        int j;
        boolean flag;
        flag = tb.b;
        vector = is.c(b);
        stringbuffer = new StringBuffer();
        i = vector.size();
        j = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        stringbuffer.append((String)vector.get(j));
        if(j < i - 1)
            stringbuffer.append(z[2]);
        j++;
_L2:
        if(j >= i)
            return a + "(" + stringbuffer.toString() + ")";
        if(true) goto _L1; else goto _L3
_L3:
    }

    public String b(Hashtable hashtable)
    {
        return a + a(hashtable);
    }

    public String d(Hashtable hashtable)
    {
        return c(hashtable) + " " + a + a(hashtable);
    }

    public int hashCode()
    {
        return d;
    }

    public String toString()
    {
        return is.e(c) + " " + f();
    }

    public static String d(String s, Hashtable hashtable)
    {
        String s1 = "";
        String s2 = is.a(s, false, false);
        if(s2.endsWith("]"))
        {
            int i = s2.indexOf('[');
            s1 = s2.substring(i);
            s2 = s2.substring(0, i);
        }
        String s3 = (String)px.a(s2, hashtable);
        return s3.replace('/', '.') + s1;
    }

    public static String b(String s, Hashtable hashtable)
    {
        StringBuffer stringbuffer;
        Vector vector;
        int i;
        int j;
        boolean flag;
        flag = tb.b;
        stringbuffer = new StringBuffer();
        stringbuffer.append('(');
        vector = is.b(s);
        i = vector.size();
        j = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        String s1 = (String)vector.elementAt(j);
        stringbuffer.append(d(s1, hashtable));
        if(j + 1 < i)
            stringbuffer.append(z[2]);
        j++;
_L2:
        if(j >= i)
            return stringbuffer.append(')').toString();
        if(true) goto _L1; else goto _L3
_L3:
    }
}